TARGET = Smart_Home
CC = gcc
CFLAGS = -Wall -g
LDFLAGS = -pthread  # 添加线程库支持（如果 thread_pool.c 需要）
HEADERS := $(wildcard *.h)
SRCS := $(wildcard *.c)
OBJS := $(patsubst %.c,%.o,$(SRCS))

# 调试信息，显示 HEADERS、SRCS 和 OBJS
$(info HEADERS = $(HEADERS))
$(info SRCS = $(SRCS))
$(info OBJS = $(OBJS))

# 链接规则：生成最终的可执行文件
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) $^ -o $@
	@echo "Built target $(TARGET)"

# 编译规则：将 .c 文件编译为 .o 文件，包含头文件依赖
%.o: %.c $(HEADERS)
	$(CC) $(CFLAGS) -c $< -o $@
	@echo "Compiled $<"

# 清理规则
clean:
	rm -f $(OBJS) $(TARGET)
	@echo "Cleaned project"

# 声明伪目标
.PHONY: clean all

# 默认目标
all: $(TARGET)

